Why does GenWIP tell me the UNIQUE_ID field is not in the DFD?

UNIQUE_ID field is not defined in the DFD and no <DBTable:wip> UniqueTag=  INI option is specified.

When running the GenWIP program, this message tells you that you do not have a WIP.DFD file in your MRL or your WIP.DFD file does not have the UNIQUE_ID field defined. It typically means the system needs to know the primary key for this table. Since people often do not define one, the system looks for the UNIQUE_ID. The UNIQUE_ID field is not included in the default WIP.DFD file.

This message usually occurs when you try to send WIP transactions to a repository other than xBase, such as DB2 or SQL. Here is a sample WIP.DFD file that does contain the UNIQUE_ID field:

Note   The UNIQUE_ID field (column) is included in both <FIELDS> and <KEYS> section in the DFD file.
< FIELDS >
; UNIQUE_ID field is not in the standard WIP.DFD, you must add it
FIELDNAME = UNIQUE_ID
FIELDNAME = KEY1
FIELDNAME = KEY2
FIELDNAME = KEYID
FIELDNAME = RECTYPE
FIELDNAME = CREATETIME
FIELDNAME = ORIGUSER
FIELDNAME = CURRUSER
FIELDNAME = MODIFYTIME
FIELDNAME = FORMSETID
FIELDNAME = TRANCODE
FIELDNAME = STATUSCODE
FIELDNAME = FROMUSER
FIELDNAME = FROMTIME
FIELDNAME = TOUSER
FIELDNAME = TOTIME
FIELDNAME = DESC
FIELDNAME = INUSE
FIELDNAME = ARCKEY
FIELDNAME = APPDATA
FIELDNAME = RECNUM
< FIELD:UNIQUE_ID >
; This section is not in the standard WIP.DFD, you must add it
INT_TYPE = CHAR_ARRAY
INT_LENGTH = 32
EXT_TYPE = CHAR_ARRAY
EXT_LENGTH = 32
KEY = Y
REQUIRED = Y
< FIELD:KEY1 >
INT_TYPE = CHAR_ARRAY
INT_LENGTH = 30
EXT_TYPE = CHAR_ARRAY
EXT_LENGTH = 30
KEY = Y
REQUIRED = Y
< FIELD:KEY2 >
INT_TYPE = CHAR_ARRAY
INT_LENGTH = 30
EXT_TYPE = CHAR_ARRAY
EXT_LENGTH = 30
KEY = Y
REQUIRED = Y
< FIELD:KEYID >
INT_TYPE = CHAR_ARRAY
INT_LENGTH = 20
EXT_TYPE = CHAR_ARRAY
EXT_LENGTH = 20
KEY = Y
REQUIRED = Y
< FIELD:RECTYPE >
EXT_TYPE = CHAR_ARRAY
EXT_LENGTH = 3
EXT_PRECISION = 0
INT_TYPE = CHAR_ARRAY
INT_LENGTH = 3
INT_PRECISION = 0
KEY = N
REQUIRED = Y
< FIELD:CREATETIME >
EXT_TYPE = CHAR_ARRAY
EXT_LENGTH = 8
EXT_PRECISION = 0
INT_TYPE = CHAR_ARRAY
INT_LENGTH = 8
INT_PRECISION = 0
KEY = N
REQUIRED = Y
< FIELD:ORIGUSER >
EXT_TYPE = CHAR_ARRAY
EXT_LENGTH = 8
EXT_PRECISION = 0
INT_TYPE = CHAR_ARRAY
INT_LENGTH = 8
INT_PRECISION = 0
KEY = N
REQUIRED = N
< FIELD:CURRUSER >
EXT_TYPE = CHAR_ARRAY
EXT_LENGTH = 8
EXT_PRECISION = 0
INT_TYPE = CHAR_ARRAY
INT_LENGTH = 8
INT_PRECISION = 0
KEY = N
REQUIRED = N
< FIELD:MODIFYTIME >
EXT_TYPE = CHAR_ARRAY
EXT_LENGTH = 8
EXT_PRECISION = 0
INT_TYPE = CHAR_ARRAY
INT_LENGTH = 8
INT_PRECISION = 0
KEY = N
REQUIRED = N
< FIELD:FORMSETID >
EXT_TYPE = CHAR_ARRAY
EXT_LENGTH = 8
EXT_PRECISION = 0
INT_TYPE = CHAR_ARRAY
INT_LENGTH = 8
INT_PRECISION = 0
KEY = N
REQUIRED = N
< FIELD:TRANCODE >
EXT_TYPE = CHAR_ARRAY
EXT_LENGTH = 2
EXT_PRECISION = 0
INT_TYPE = CHAR_ARRAY
INT_LENGTH = 2
INT_PRECISION = 0
KEY = N
REQUIRED = N
< FIELD:STATUSCODE >
EXT_TYPE = CHAR_ARRAY
EXT_LENGTH = 2
EXT_PRECISION = 0
INT_TYPE = CHAR_ARRAY
INT_LENGTH = 2
INT_PRECISION = 0
KEY = N
REQUIRED = Y
< FIELD:FROMUSER >
EXT_TYPE = CHAR_ARRAY
EXT_LENGTH = 8
EXT_PRECISION = 0
INT_TYPE = CHAR_ARRAY
INT_LENGTH = 8
INT_PRECISION = 0
KEY = N
REQUIRED = N
< FIELD:FROMTIME >
EXT_TYPE = CHAR_ARRAY
EXT_LENGTH = 8
EXT_PRECISION = 0
INT_TYPE = CHAR_ARRAY
INT_LENGTH = 8
INT_PRECISION = 0
KEY = N
REQUIRED = N
< FIELD:TOUSER >
EXT_TYPE = CHAR_ARRAY
EXT_LENGTH = 8
EXT_PRECISION = 0
INT_TYPE = CHAR_ARRAY
INT_LENGTH = 8
INT_PRECISION = 0
KEY = N
REQUIRED = N
< FIELD:TOTIME >
EXT_TYPE = CHAR_ARRAY
EXT_LENGTH = 8
EXT_PRECISION = 0
INT_TYPE = CHAR_ARRAY
INT_LENGTH = 8
INT_PRECISION = 0
KEY = N
REQUIRED = N
< FIELD:DESC >
EXT_TYPE = CHAR_ARRAY
EXT_LENGTH = 30
EXT_PRECISION = 0
INT_TYPE = CHAR_ARRAY
INT_LENGTH = 30
INT_PRECISION = 0
KEY = N
REQUIRED = N
< FIELD:INUSE >
EXT_TYPE = CHAR_ARRAY
EXT_LENGTH = 1
EXT_PRECISION = 0
INT_TYPE = CHAR_ARRAY
INT_LENGTH = 1
INT_PRECISION = 0
KEY = N
REQUIRED = N
< FIELD:ARCKEY >
EXT_TYPE = CHAR_ARRAY
EXT_LENGTH = 18
EXT_PRECISION = 0
INT_TYPE = CHAR_ARRAY
INT_LENGTH = 18
INT_PRECISION = 0
KEY = N
REQUIRED = N
< FIELD:RECNUM >
EXT_TYPE = NOT_PRESENT
EXT_LENGTH = 0
EXT_PRECISION = 0
INT_TYPE = LONG
INT_LENGTH = 4
INT_PRECISION = 0
KEY = N
REQUIRED = N
< FIELD:APPDATA >
EXT_TYPE = CHAR_ARRAY
EXT_LENGTH = 150
EXT_PRECISION = 0
INT_TYPE = CHAR_ARRAY
INT_LENGTH = 150
INT_PRECISION = 0
KEY = N
REQUIRED = N
< KEYS >
KEYNAME = UNIQUE_ID
KEYNAME = DOCTAG
KEYNAME = KEY2TAG
KEYNAME = KEYIDTAG
KEYNAME = USERTAG
< KEY:UNIQUE_ID >
EXPRESSION = UNIQUE_ID
FIELDLIST = UNIQUE_ID
< KEY:DOCTAG >
EXPRESSION = KEY1+KEY2+KEYID+RECTYPE
FIELDLIST = KEY1,KEY2,KEYID,RECTYPE
< KEY:KEY2TAG >
EXPRESSION = KEY2
FIELDLIST = KEY2